home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 23 / Amiga Format AFCD23 (Feb 1998, Issue 107).iso / -seriously_amiga- / shareware / programming / other / studio16add / sources / makesample.asm < prev    next >
Assembly Source File  |  1997-12-01  |  1KB  |  76 lines

  1. * Simple source to initialize a header and save it as a Studio16_2.0 sample
  2. *
  3. *    Public domain - made by Kenneth "Kenny" Nilsen
  4. *    DEMO purpose ONLY!
  5.  
  6.     incdir    inc:
  7.     include    libraries/studio16file.i
  8.     include    lvo/exec_lib.i
  9.     include    lvo/dos_lib.i
  10.     incdir
  11.     
  12. start:    lea    header(pc),a5
  13.  
  14. * Initialize Studio16_2.0 sample header:
  15.  
  16.     move.l    #S16FID,S16F_ID(a5)
  17.     move.l    #S16FINIT,S16F_FILTER(a5)
  18.  
  19.     move.l    #S16_FREQ_C,S16F_RATE(a5)
  20.     move.w    #S16_VOL_0,S16F_VOLUME(a5)
  21.     move.l    #S16_PAN_MID,S16F_PAN(a5)
  22.  
  23. ;    move.l    #$00120902,S16F_SMPTE(a5)    ;=00:18:09:02  (HH:MM:SS:FF) SMPTE
  24.  
  25.     move.l    #(End-Sample)/2,S16F_REALSIZE(a5)
  26.     move.l    #(End-Sample)/2,S16F_EDITSIZE(a5)
  27.     move.l    #(End-Sample)/2-1,S16F_END(a5)
  28.  
  29. ; save sample
  30.  
  31.     move.l    $4.w,a6
  32.     lea    LibName(pc),a1
  33.     moveq    #0,d0
  34.     jsr    _LVOOpenLibrary(a6)
  35.     move.l    d0,DosBase    ;dos library
  36.     beq    .exit
  37.  
  38.     move.l    d0,a6
  39.     move.l    #Filename,d1
  40.     move.l    #MODE_NEWFILE,d2
  41.     jsr    _LVOOpen(a6)    ;open new file
  42.     move.l    d0,d7
  43.     beq    .cleanup
  44.  
  45.     move.l    d0,d1
  46.     move.l    #Header,d2
  47.     move.l    #S16F_SIZEOF,d3
  48.     jsr    _LVOWrite(a6)    ;write header
  49.  
  50.     move.l    d7,d1
  51.     move.l    #Sample,d2
  52.     move.l    #End-Sample,d3
  53.     jst    _LVOWrite(a6)    ;write sample
  54.  
  55.     move.l    d7,d1
  56.     jsr    _LVOClose(a6)    ;close file
  57.  
  58. .cleanup
  59.     move.l    a6,a1
  60.     move.l    $4.w,a6        ;close library
  61.     jsr    _LVOCloseLibrary(a6)
  62.  
  63. .exit    moveq    #0,d0        ;exit
  64.     rts
  65.  
  66. Filename    dc.b    "ram:TestSample_mid",0
  67. LibName        dc.b    "dos.library",0
  68.  
  69.         even
  70.  
  71. DosBase        dc.l    0
  72.  
  73. Header        dcb.b    S16F_SIZEOF,0        ;our header
  74. Sample        incbin    sample_raw        ;our sample
  75. End
  76.